package com.gitee.huanminabc.jcommon.reflect;

import java.lang.reflect.Method;

/**
 * @description:
 * @author: huanmin
 * @create: 2025-04-08 12:51
 **/
public class EnumUtil {

    public   static Object castEnum( Object value, Class<?> type){
        //尝试调用Enum.valueOf 方法
        if (value instanceof String){
            try {
                return  Enum.valueOf((Class) type, value.toString());
            } catch (Exception ignored) {
            }
        }
        //如果通过Enum.valueOf 方法没有获取到值那么就调用目标的getEnum 方法
        try {
            Method getEnum = type.getDeclaredMethod("getEnum", value.getClass());
            return getEnum.invoke(null, value);
        } catch (Exception ignored) {
        }
        return null;
    }
}
